package cn.wolfcode.luowowo.service;

import cn.wolfcode.luowowo.QueryObject.StrategyQuery;
import cn.wolfcode.luowowo.domain.Strategy;
import cn.wolfcode.luowowo.domain.StrategyComment;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 攻略目录服务接口
 */
public interface IStrategyService {


    /**
     * 获取单个攻略
     *
     * @param id
     * @return
     */
    Strategy get(String id);

    /**
     * 获取攻略列表
     *
     * @return
     */
    List<Strategy> list();

    /**
     * 分页查询
     *
     * @param qo
     * @return
     */
    Page<Strategy> query(StrategyQuery qo);

    /**
     * 新增或保存攻略
     *
     * @param strategy
     */
    void saveOrUpdate(Strategy strategy);


    /**
     * 根据id 删除攻略
     *
     * @param id
     */
    void delete(String id);


    /**
     * 获取攻略分类对应的攻略文章
     *
     * @param CatalogId
     * @return
     */
    List<Strategy> getStrategyByCatalogId(String CatalogId);

    /**
     * 攻略上架下架 切换
     *
     * @param id
     * @param state
     */
    void changeState(int state, String id);

    /**
     * 获取指定目的地下前三攻略  strategies
     *
     * @return
     */
    List<Strategy> getHighViewNumStrategy(String destId);


    /**
     * 根据目的地名字 查询攻略
     * @param keyword
     * @return
     */
    List<Strategy> getByDestName(String destName);
}
